/**
 * MCP Schema 工具函数
 * 为MCP SDK提供兼容的Schema验证对象
 */

/**
 * 创建一个与MCP SDK兼容的通用schema验证对象
 * @param {Function} validator 验证函数，接收数据并验证
 * @returns {Object} 兼容的schema对象
 */
function createSchema(validator) {
    return {
        parse: function(data) {
            return validator(data);
        }
    };
}

/**
 * 工具列表响应schema
 */
const ListToolsResultSchema = createSchema((data) => {
    if (!data || typeof data !== 'object') {
        throw new Error('响应必须是一个对象');
    }
    if (!Array.isArray(data.tools)) {
        throw new Error('响应必须包含tools数组');
    }
    return data;
});

/**
 * 工具执行响应schema
 */
const ExecuteToolResultSchema = createSchema((data) => {
    if (!data || typeof data !== 'object') {
        throw new Error('响应必须是一个对象');
    }
    // 可以添加更多的验证逻辑
    return data;
});

module.exports = {
    createSchema,
    ListToolsResultSchema,
    ExecuteToolResultSchema
}; 